package com.prj.ufdm.auth.bpo;

import java.util.Collection;
import java.util.List;
import org.springframework.security.core.GrantedAuthority;
import com.prj.ufdm.auth.model.SysFunction;
import com.prj.ufdm.core.bpo.BaseBPO;

/**  
 * TODO 
 * @author 胡义振  
 * @date 2018年3月26日  
*/
public interface SysFunctionBPO extends BaseBPO<SysFunction> {
	
	 /**
		 * 描述: 查询所有功能信息
		 * @auther 胡义振
		 * @param userId 用户ID
		 * @return 用户资源列表
		 * @throws Exception
		 */
		public List<SysFunction> doGetFunctionList() throws Exception;
		
	    /**
		 * 描述: 根据用户ID，查询用户的功能
		 * @auther 胡义振
		 * @param userId 用户ID
		 * @return 用户资源列表
		 * @throws Exception
		 */
		public List<SysFunction> doGetFunctionListByUserId(String userId) throws Exception;
		
	    /**
		 * 描述: 根据用户ID，查询用户授权功能
		 * @auther 胡义振
		 * @param userId 用户ID
		 * @return 用户资源列表
		 * @throws Exception
		 */
		public Collection<GrantedAuthority> doGetGantedAuthoritiestByUserId(String userId) throws Exception;
		
		
		/**
		 * 描述: 根据角色ID，查询角色的功能
		 * @auther 胡义振
		 * @param roleId 角色ID
		 * @return 
		 * @throws Exception
		 */
		public List<SysFunction> doGetFunctionListByRoleId(String roleId) throws Exception;
		
		/**
		 * 描述: 删除系统功能
		 * @auther 胡义振
		 * @param functionId 系统功能ID
		 * @return 
		 * @throws Exception
		 */
		public Integer doRmFunctionById(String functionId) throws Exception;

}
